package com.agencia.persistencia;


import java.sql.SQLException;
import java.util.ArrayList;

import com.agencia.connection.DataSocketBuscar;
import com.agencia.dominio.Anulado;
import com.agencia.dominio.Usuario;
import com.agencia.dominio.Venta;
import com.agencia.dominio.Terminal;

public interface IPersistencia {
	
	public Venta  altaVentaBD(Venta venta)throws SQLException;
	public Anulado anularVentaBD(Venta venta, Anulado anulado) throws SQLException;
	public boolean ingresarUsuarioBD(Usuario usuario);
	public boolean modificarUsuarioBD(Usuario usuario) throws SQLException;
	public boolean ingresarTerminalaBD(Terminal terminal) throws TerminalExisteException, TerminalErrorDatosException, SQLException;
	public boolean modificarTerminalBD(Terminal terminal);
	public boolean existeUsuarioTerminalBD(String us, String pass, int id_terminal) throws SQLException;
	public Terminal buscarTerminalaBD(Integer id_Terminal) throws SQLException;
	public boolean loginAdminBD(String us, String pass) throws SQLException;
	public ArrayList<Terminal> selectAll() throws SQLException;
	public Usuario obtenerUsuario(String user) throws SQLException;
	public Usuario obtenerUsuarioxId(Integer id)throws SQLException;
	public ArrayList<Usuario> selectAllUsuarios() throws SQLException;
	public ArrayList<Terminal> selectNotTerminalUsuario(Integer id_Usuario) throws SQLException;
	public Integer obtenerAgencia() throws SQLException;
	public boolean verificarDatosVentas(Venta venta) throws SQLException;
	public boolean verificarVentaAnulada(Venta venta) throws SQLException;
	public DataSocketBuscar buscarDataVenta(Integer id_Ticket_IMM) throws SQLException;
	public Venta buscarVenta(Integer id_Ticket_IMM) throws SQLException;
	public boolean asociarTerminalaUsuario(Integer IdUs, Integer IdT);
}
